package io;


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 文件拷贝
 */
public class FileCopy {

    public static void main(String[] args) {

        /*
            完成文件拷贝
            使用FileInputStream FileOutputStream
            1)创建文件输入流，将文件读入到程序
            2)创建文件输出流，将读取到的文件数据，写入到指定的文件
         */

        String filePath = "D:\\IdeaCode\\test.jpeg";
        String copyFilePath = "D:\\IdeaCode\\javaStudy\\test.jpeg";

        FileInputStream fis = null;
        FileOutputStream fos = null;

        //1.先读取文件
        try {
            fis = new FileInputStream(filePath);
            byte[] buf = new byte[1024];    //一次性读取1024字节，提高效率
            int readLen = 0;    //每次读取的字节数

            fos = new FileOutputStream(copyFilePath);

            while((readLen = fis.read(buf)) != -1) {
                //读取后就写入到文件,边读边写
                fos.write(buf, 0, readLen);
            }
            System.out.println("拷贝成功...");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭输入输出流，释放资源
            try {
                if (fis != null) {
                    fis.close();
                }
                if (fos != null) {
                    fos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
